/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package demo.access;

/**
 *
 * @author VANDH
 */
// Inheritance là tính chất của thiết kế hướng đối tượng
// Tính đóng gói là tính chất của thiết kế hướng đối tượng
// Sub class
public class Car extends Vehicle {

    // member class, inner class
    protected static class AutoCamera {

        private float alertRadius;

        public void setAlertRadius(float alertRadius) {
            this.alertRadius = alertRadius;
        }

        public float getAlertRadius() {
            count = 1;
            return alertRadius;
        }
    }
    // member của class
    public static int count = 0;
    private final int MAX_INT = 0;
    private float acPower;
    private boolean discPlayer;

    public Car() {
        super();
    }

    // name, manufacturer là thuộc tính kế thừa từ Vehicle
    // acPower là thuộc tính riêng của Car
    public Car(String name, String manufacturer, float acPower) {
        super(name, manufacturer);
        this.acPower = acPower;
    }

    public boolean isDiscPlayer() {
        return discPlayer;
    }

    public void setDiscPlayer(boolean discPlayer) {
        this.discPlayer = discPlayer;
        count = 3;
    }

    public void startAirConditioner() {
        System.out.println("Air conditioner is running...");
    }

    public void playDisc() {
        System.out.println("Disc player is playing...");
    }

    public void setAcPower(float acPower) {
        if (acPower > 0) {
            this.acPower = acPower;
        }
    }

    public float getAcPower() {

        // local class
        class AutoCamera2 {

            private float alertRadius;

            public void setAlertRadius(float alertRadius) {
                this.alertRadius = alertRadius;
                acPower = 2;
            }

            public float getAlertRadius() {
                count = 1;
                isDiscPlayer();
                discPlayer = false;
                return alertRadius;
            }
        }

        AutoCamera2 a = new AutoCamera2();

        // if (là admin)
        return acPower;
    }

    @Override
    public void accelerator() {
        super.accelerator();
        System.out.println("Has been overriden");
    }

    @Override
    public void showSound() {
        System.out.println("Sound of car...");
    }

    public static void setCount(int c) {
        count = c;
    }
}
